package cmd

import (
	"fmt"
	"strings"
)

const NUMBER_CHARS_ALL = "0️⃣1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣8️⃣9️⃣🔟"

const NUMBER_CHARS = "0️⃣1️⃣2️⃣3️⃣4️⃣5️⃣6️⃣7️⃣8️⃣9️⃣"

var numberRunes = []rune(NUMBER_CHARS)
var numberRunes2 = []rune{
	'\U00000030', // '0'
	'\U00000031', // '1'
	'\U00000032', // '2'
	'\U00000033', // '3'
	'\U00000034', // '4'
	'\U00000035', // '5'
	'\U00000036', // '6'
	'\U00000037', // '7'
	'\U00000038', // '8'
	'\U00000039', // '9'
}

// 或者使用带 emoji 样式的版本（需要字体支持）
//var emojiNumberRunes = []rune{
//	'\U00000030\U0000FE0F\U000020E3', // 0️⃣
//	'\U00000031\U0000FE0F\U000020E3', // 1️⃣
//	'\U00000032\U0000FE0F\U000020E3', // 2️⃣
//	'\U00000033\U0000FE0F\U000020E3', // 3️⃣
//	'\U00000034\U0000FE0F\U000020E3', // 4️⃣
//	'\U00000035\U0000FE0F\U000020E3', // 5️⃣
//	'\U00000036\U0000FE0F\U000020E3', // 6️⃣
//	'\U00000037\U0000FE0F\U000020E3', // 7️⃣
//	'\U00000038\U0000FE0F\U000020E3', // 8️⃣
//	'\U00000039\U0000FE0F\U000020E3', // 9️⃣
//}

const H = "💯"

func IntToChars(num int) string {
	if num == 100 {
		return H
	}

	var sb strings.Builder
	input := fmt.Sprintf("%d", num)

	for _, r := range input {
		if r >= '0' && r <= '9' {
			digit := r - '0'
			startIndex := digit * 3
			if startIndex+2 < 30 {
				// 拼接完整的 Emoji rune 序列
				sb.WriteRune(numberRunes[startIndex])
				sb.WriteRune(numberRunes[startIndex+1])
				sb.WriteRune(numberRunes[startIndex+2])
			} else {
				sb.WriteRune(r) // fallback
			}
		} else {
			sb.WriteRune(r)
		}
	}

	return sb.String()
}

func I2C(num int) string {
	return IntToChars(num)
}
